#!/usr/bin/env python3
from tqdm import tqdm
import time
#import zipfile
import pyzipper

#定义一个密码字典
passwordfile = "passwordfile.txt"
#定义一个zip压缩包
zip_files= "aaa.zip"
#*打开*缩上面的压缩包
#zip_file = zipfile.ZipFile(zip_files)

word_len = len(list(open(passwordfile,"rb")))#定义密码字典的长度
print("密码字典共有：{}行".format(word_len))
with open(passwordfile,"rb") as file:
    for i in tqdm(file,total=word_len,unit="word"):
        time.sleep(0.01)#防止爆破过快
        pwd = str(i,'utf-8').replace('\n','').replace('\r','')#去除换行，编码为字符串str类型
        try:
        #以AES加密只读模式打开zip_file，compresstion定义代表使用DEFLATE压缩算法进行数据压缩, 
            with pyzipper.AESZipFile(zip_files,'r',compression=pyzipper.ZIP_DEFLATED, encryption=pyzipper.WZ_AES)as files:
                files.extractall(pwd=str.encode(pwd))#编码为字节串byte类型
        except:#处理错误
              continue
        else:#计算结果
              print("爆破出密码为{}".format(pwd))
              exit(0)#传入0程序正常退出
print("密码字典没有找到密码")
